package org.nf.web.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;

/**
 * @author wangl
 * @date 2021/10/14
 * 请求处理映射器，根据请求的url地址查找合适的Handler（控制器）
 */
public interface HandlerMapping {

    /**
     * 根据uri查找对应的HandlerMethod
     * 如果handlerMethodMap包含匹配的请求uri，则直接返回相应的HandlerMethod
     * 否则从本地缓存查找，如果本地缓存未找到则使用AntPath进行匹配查找并缓存
     * @param request 请求对象
     * @return 拦截器处理链
     * @throws ServletException Servlet异常
     */
    HandlerExecutionChain getHandler(HttpServletRequest request) throws ServletException;
}
